package com.ruoyi.mall.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.mall.domain.MallTimeOrder;

/**
 * 抢购订单Mapper接口
 *
 * @author ruoyi
 * @date 2022-03-01
 */
public interface MallTimeOrderMapper
{
    /**
     * 查询抢购订单
     *
     * @param id 抢购订单主键
     * @return 抢购订单
     */
    public MallTimeOrder selectMallTimeOrderById(Long id);

    /**
     * 查询抢购订单列表
     *
     * @param mallTimeOrder 抢购订单
     * @return 抢购订单集合
     */
    public List<MallTimeOrder> selectMallTimeOrderList(MallTimeOrder mallTimeOrder);

    /**
     * 新增抢购订单
     *
     * @param mallTimeOrder 抢购订单
     * @return 结果
     */
    public int insertMallTimeOrder(MallTimeOrder mallTimeOrder);

    /**
     * 修改抢购订单
     *
     * @param mallTimeOrder 抢购订单
     * @return 结果
     */
    public int updateMallTimeOrder(MallTimeOrder mallTimeOrder);

    /**
     * 删除抢购订单
     *
     * @param id 抢购订单主键
     * @return 结果
     */
    public int deleteMallTimeOrderById(Long id);

    /**
     * 批量删除抢购订单
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMallTimeOrderByIds(Long[] ids);

    /**
     * 用户今日抢购单数量
     *
     * @param userId：ID
     * @return 1
     */
    public int timeOrderNumTodayByUserId(Long userId);

    /**
     * 查询粉丝订单列表
     *
     * @param userId：ID
     * @return 抢购订单集合
     */
    public List<MallTimeOrder> selectMyFansTimeOrderList(Long userId);

    /**
     * 今日数据折线图
     */
    public Map<String,Object> queryTodayLineChart();

    /**
     * 历史数据折线图（流水、消费人数）
     */
    public Map<String, Object> queryHistoryLineChart(Map<String, Object> map);

    /**
     * 历史数据折线图（营业额、成交单数）
     */
    public Map<String, Object> queryHistoryLineChart2(Map<String, Object> map);

    /**
     * 分销商列表查看总流水
     *
     * @param userId：用户ID
     * @return 抢购订单集合
     */
    public List<MallTimeOrder> distributorListViewTotalFlow(Long userId);

    /**
     * 分销商列表查看下级
     *
     * @param userId：用户ID
     * @return 抢购订单集合
     */
    public List<MallTimeOrder> distributorListViewSubordinate(Long userId);
}
